采集天眼查数据(根据已有的公司名称采集)

本文介绍了作者如何针对已有公司名称,通过编写Winform程序规避天眼查反扒策略进行数据采集。作者遇到验证码问题,通过设置webBrowser组件模拟点击并设置间隔时间来降低被检测风险。程序能根据公司名称生成URL,解析HTML获取详细信息,并存储到数据库。
摘要由CSDN通过智能技术生成

 

 

 

因为部分原因,需要用到天眼查的数据,虽然开了天眼查的会员账号,但是导出Excel数据字段内容太少,部分例如工商注册号,组织机构代码都没用,感觉有些不完整,所以利用数据库里已有的公司名称来进行采集,将信息页的内容采集完整

吐槽下,天眼查的反扒确实蛮多的,最早用软件采集,但是没有配置采集频率,结果两分钟左右就爬了100个页面就会跳出验证码界面,验证码的图片有点也很讨厌,看到眼睛很花

因为知道明确的公司名称,采集思路就快很多,做了个winform 窗口的,两个按钮,一个开始一个结束,两个文本框,一个用来显示当前的采集url,另一个是显示采集成功的结果累计页

采集的过程就是连接完数据库后,根据查询语句从数据库中捞出相应数据形成List,加一个webBrowser做可视化界面,因为验证码绕不开,需要点击.

总体的思路是:根据公司名称拼凑成url,然后解析html,找到详细页的url,再解析第二次的详细页的html,抓取相应数据,保存到数据库

因为不太懂得多线程的原理,所以就在主线程上设置了休眠1秒,勉强1小时跳一次验证码,采集的速度也蛮很多,相当于手工模拟点击,因为天眼查一定要登录,出现验证码的页面会出现手机号和ip地址,感觉对着两个应该是有限制的.

贴上部分代码作为参考

初始化一些需要的字段

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HtmlAgilityPack;
using Ivony.Html;
using Ivony.Html.Parser;
using System.Threading;


        /// <summary>
        /// 替换采集的公司曾用名
        /// </summary>
        public string company_used_name = string.Empty;
        /// <summary>
        /// 替换采集的信息更新时间
        /// </summary>
        public string information_update_time = string.Empty;
        /// <summary>
        /// 替换采集的公司组织机构代码
        /// </summary>
        public string organizing_code = string.Empty;
        /// <summary>
        /// 替换采集的公司类型
        /// </summary>
        public string company_type = string.Empty;
        /// <summary>
        /// 替换采集的公司所属行业
        /// </summary>
        public string industry = string.Empty;
        /// <summary>
        /// 替换采集的公司营业期限
        /// </summary>
        public string operating_period = string.Empty;
        /// <summary>
        /// 替换采集的纳税人资质
        /// </summary>
        public string taxpayer_qualification = string.Empty;
        /// <summary>
        /// 替换采集的人员规模
        /// </summary>
        public string staff_size = string.Empty;
        /// <summary>
        /// 替换采集的实缴资本
        /// </summary>
        public string contribute_capital = string.Empty;
        /// <summary>
        /// 替换采集的登记机关
        /// </summary>
        public string registration_authority = string.Empty;
        /// <summary>
        /// 替换采集的参保人数
        /// </summary>
        public string guarabtee_people = string.Empty;
        /// <summary>
        /// 替换采集的公司英文名称
        /// </summary>
        public string english_name = string.Empty;
        /// <summary>
        /// 用于替换采集到的公司id
        /// </summary>
        public string company_id = string.Empty;
        /// <summary>
        /// 用于替换采集到的公司状态
        /// </summary>
        public string company_state = string.Empty;
        /// <summary>
        /// 判断按钮状态
        /// </summary>
        private bool status = false;
        /// <summary>
        /// 用于替换数据采集页的url
        /// </summary>
        public string urls = string.Empty;

        public int ID;
        public int CID = 0;
        /// <summary>
        /// 是否第一次加载url
        /// </summary>
        public bool isfrist = true;
        /// <summary>
        /// 数据库上下文
        /// </summary>
        DB_UsersEntities db = new DB_UsersEntities();
        //数据库里的对应的表
        public List<_Enterprise_TianYanCha> list;

 初始界面,第一次登陆的时候,记录账号信息的


                
### 回答1: 天眼询是一家提供企业信息询服务的网站,它提供了丰富的企业数据,包括公司的基本信息、法律诉讼情况、经营状况、财务数据等。如果想要获取天眼询的企业数据,可以使用Java编写一个网络爬虫。 首先,我们需要使用Java的网络爬虫库,例如Jsoup,来向天眼询网站发送HTTP请求,并获取网页的内容。接着,通过解析HTML页面的结构,我们可以提取出需要的企业数据。 在实际操作中,我们可以通过制定一些规则来确定需要爬取哪些企业的数据,可以根据公司名称、行业分类、地理位置等条件进行筛选。然后,我们使用Java的正则表达式或XPath来提取需要的数据,并将其保存到本地的文件或数据库中。 为了保证爬取的效率和稳定性,我们可以使用多线程技术来同时爬取多个企业的数据。此外,还可以设置合理的请求间隔和错误处理机制,防止被网站封禁或者遇到异常情况时能够自动恢复。 总之,通过使用Java编写一个网络爬虫,我们可以方便地从天眼询网站爬取企业数据。这样,我们可以快速地获取大量企业的信息,为企业研究、市场调研等工作提供有力支持。 ### 回答2: 通过天眼询企业数据,可以使用Java进行数据爬取的操作。首先,需要使用Java的爬虫框架,例如Jsoup或者HttpClient等,来模拟浏览器发送HTTP请求,并获取网页的源代码。 接下来,我们可以通过分析天眼询企业数据网页的源代码,找到我们所需的数据在网页中的位置和标签,例如公司名称、注册资本、法定代表人等等。使用Java的字符串处理函数或者正则表达式,可以将这些所需数据从网页源代码中提取出来。 然后,将提取出来的数据存储到Java的数据结构中,例如数组、集合或者自定义的实体对象。可以使用Java的数据持久化技术,例如文件存储、数据库存储等,将这些数据保存下来,以备后续使用。 在爬取时,可能会遇到反爬虫机制,例如验证码、限流等。针对这些情况,我们可以使用Java的图像处理库,例如JavaCV或者OpenCV等,来自动识别验证码,并绕过限流等机制。 除了基本的数据爬取外,还可以使用Java的多线程技术,例如线程池,实现更高效的爬取。可以将爬取任务分配给多个线程去执行,从而提高爬取速度。 总之,通过使用Java进行天眼询企业数据的爬取操作,我们可以利用Java强大的网络请求、数据处理和多线程等特性,轻松地获取所需的企业数据,并进行后续分析和使用。 ### 回答3: 天眼询是一个用于询企业信息的网站,提供了大量的企业数据。要实现对天眼询网站上的企业数据进行爬取,可以使用Java语言进行开发。 首先,我们需要使用Java的网络爬虫库,例如Jsoup,来进行网页的解析和数据抓取。通过发送HTTP请求,获取天眼询网站上的企业数据页面的HTML源码。 接下来,我们需要分析天眼询网站上企业数据页面的HTML结构,找到所需数据的标签和属性。使用Jsoup等工具提供的选择器功能,可以通过CSS选择器或XPath语法,精确地定位所需数据的位置。 一旦定位到所需数据的位置,我们就可以使用Java代码提取和处理这些数据。通过解析HTML,获取企业的名称、法定代表人、注册资本、成立日期、公司地址等基本信息。 此外,天眼询网站还提供了企业的股东信息、对外投资信息、主要人员信息等更详细的数据。我们可以根据需求,进一步处理这些数据,例如提取股东名称、持股比例等信息,并存储到数据库或导出为Excel等文件格式。 在处理数据时,我们还需要注意网站的访问频率和规范。爬取过程中,应该控制请求的频率,避免对网站造成过大的负担,并遵守相关的爬虫规范。 最后,可以根据爬虫的实际使用场景,进行数据的清洗、分析和可视化等后续处理工作,以满足具体的需求。 总之,通过使用Java语言编写爬虫程序,结合网络爬虫库和HTML解析工具,可以实现对天眼询企业数据的爬取和处理。这样,我们可以方便地获取和利用大量的企业信息数据
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值